import request from '../../Utils/request';
let isSend = false; // 函数节流使用
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		placeholderContent: '', // placeholder默认值
		hotList: [], // 热搜榜数据
		searchContent: '', // 用户输入的表单项数据
		searchList: [], // 关键字模糊匹配数据
		historyList: [], // 搜索历史记录
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		// 获取初始化数据
		this.getInitData();
		// 获取历史记录
		this.getSearchHistory();
	},

	// 获取初始化数据
	async getInitData() {
		// 搜索框默认值
		let placeholderData = await request('/search/default');
		// 热搜榜数据
		let hotListData = await request('/search/hot/detail');
		this.setData({
			placeholderContent: placeholderData.data.showKeyword,
			hotList: hotListData.data,
		});
	},
	// 获取本地历史记录的功能函数
	getSearchHistory() {
		let historyList = wx.getStorageSync('searchHistoryList');
		if (historyList) {
			this.setData({
				historyList,
			});
		}
	},
	// 表单项内容发生改变的回调
	handleInputChange(event) {
		// 更新 searchContent 数据
		this.setData({
			searchContent: event.detail.value.trim(),
		});
		if (isSend) {
			return;
		}
		isSend = true;
		// 发送请求获取关键字模糊匹配数据
		this.getSearchList();
		// 函数节流
		setTimeout(() => {
			isSend = false;
		}, 300);
	},
	// 发送请求获取关键字模糊匹配数据
	async getSearchList() {
		if (!this.data.searchContent) {
			this.setData({
				searchList: [],
			});
			return;
		}
		let { searchContent, historyList } = this.data;
		let searchListData = await request('/search', { keywords: searchContent, limit: 10 });
		this.setData({
			searchList: searchListData.result.songs,
		});
		// 将搜索的关键字添加到历史记录
		if (historyList.indexOf(searchContent) !== -1) {
			historyList.splice(historyList.indexOf(searchContent), 1);
		}
		historyList.unshift(searchContent);
		this.setData({
			historyList,
		});
		wx.setStorageSync('searchHistoryList', historyList);
	},
	// 清空搜索内容
	clearSearchContent() {
		this.setData({
			searchContent: '',
			searchList: [],
		});
	},
	// 删除搜索历史记录
	deleteSearchHistory() {
		wx.showModal({
			content: '确认删除历史记录？',
			success: res => {
				if (res.confirm) {
					this.setData({
						historyList: [],
					});
					wx.removeStorageSync('searchHistoryList');
				}
			},
		});
	},
	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {},
});
